#include "tcpserver.h"

int main(int argc, char *argv[])
{
    if (argc != 2)
    {
        std::cout << "Usage: ./server port" << std::endl;
        return -1;
    }

    Tcpserver tcpServer;
    tcpServer.initServer(std::atoi(argv[1]));

    bool flag;

    // 4、受理客户的连接请求，如果没有客户连接，则accept函数已知阻塞
    flag = tcpServer.accept();
    if (!flag)
    {
        std::cout << "accept err" << std::endl;
        return -1;
    }

    std::cout << "客户已连接,ip=" << tcpServer.clientIp << std::endl;

    // 5、与客户端通信，接受客户端发过来的报文后，回复ok
    std::string buffer;
    while (true)
    {
        flag = tcpServer.recv(buffer, 1024);
        if (!flag)
        {
            std::cout << "recv err";
            break;
        }
        std::cout << "接收:" << buffer << std::endl;
        sleep(1);
        buffer = "ok"; // 生成回应报文
        // 向客户发送回应报文
        flag = tcpServer.send(buffer);
        if (!flag)
        {
            std::cout << "send error";
            break;
        }
        std::cout << "发送:" << buffer << std::endl;
        
    }
    
    return 0;
}

